//
// Created by RandBII on 2020/12/24.
//

#ifndef FFMPEGFORANDROID_DECODER_H
#define FFMPEGFORANDROID_DECODER_H

// 函数指针 类似于kotlin 中的函数参数 ， 类似于java中的 （匿名函数）（回调函数）个人理解
typedef void (*MessageCallback)(void *, int, float);

typedef void (*AVSyncCallback)(void *);

// 音视频 解码器的基类
class Decoder {
public:
    virtual void Start() = 0;

    virtual void Stop() = 0;

    virtual void Pause() = 0;

    virtual float GetDuration() = 0;

    virtual float GetCurrentPosition() = 0;

    virtual void SeekToPosition(float position) = 0;

    virtual void SetMessageCallback(void *context, MessageCallback callback) = 0;

};


#endif //FFMPEGFORANDROID_DECODER_H
